<div class="modal-body">
  <div>
    <p>
      The <b>Parameterized Form</b> is a user defined input form that pops up before a
      Parameterized Run of the service. Values entered to this form at runtime are
      available within running services and can override properties of the "Run" class.
      Forms defined on nested services or subworkflows are not displayed.
    </p>
    <p>
      When a parameter from the form corresponds to a property of the "Run" class, it
      overrides the existing parameter.
    </p>
  </div>
  <div>
    <p>
      An example of parameter fields to include on the parameterized form is below. Most
      commonly, the target_devices and target_pools should be included, otherwise, the
      users must edit the service or workflow every time they run it on different
      targets.

      <textarea class="help-snippet" style="height: fit-content;">
# assigns a name to the runtime for filtering results
name = StringField('Name')      
# create variale for workflow reference (e.g. port or device_interface)
custom_field = StringField('Custom Field', default='default_value')
# like Main Parameters/Initial Payload
initial_payload = DictField()  
# like Targets/Devices/Devices 
target_devices = MultipleInstanceField('Devices', model='device')  
# like Targets/Devices/Pools
target_pools = MultipleInstanceField('Pools', model='pool') 
# like Targets/Devices/Device Query, use with device_query_property
device_query = StringField('Device Query', python=True, widget=TextArea(), render_kw={'rows': 2}) 
# like Targets/Devices/Query Property Type, use with device_query
device_query_property = SelectField('Query Property Type', choices=(('name', 'Name'), ('ip_address', 'IP address')))  
# like Targets/Devices/Multiprocessing, use with max_processes
multiprocessing = BooleanField('Multiprocessing', default=False) 
# like Targets/Devices/Multiprocessing, use with multiprocessing
max_processes = IntegerField('Maximum number of processes', default=15)
</textarea
      >
    </p>
  </div>
</div>
